<?php
require_once 'BaseController.php';

/**
 * 社宅検索クラス<br />
 *
 * @package    apamanshop
 * @author     SS山本
 * @copyright  コピーライト(要確認)
 */
class Search_HouzinsearchController extends Search_BaseController
{
	public function indexAction()
	{
		if ((empty($this->_params['ComId']) && $this->_params['ComId'] != '0') || (empty($this->_params['ComGenruFlg']) && $this->_params['ComGenruFlg'] != '0')) {
			// 法人CDが無い場合、ログイン画面へリダイレクト
			Apm_Util::redirect('/asnnet/login/?loginError=1');
			exit();
		}

		/*
		 * 基本情報設定
		 */
		// 検索区分
		$this->setSearchKbn(Apm_Config_Search::SRHKBN_SYATAKU, "houzinsearch");
		// 検索サブ区分
		$this->_data['srhtype_jyusyo']   = Apm_Config_Search::SRHTYPE_JYUSYO;
		$this->_data['srhtype_enseneki'] = Apm_Config_Search::SRHTYPE_ENSENEKI;

		// 左ペイン非表示対応
		if (in_array($this->_params['ComGenruFlg'], Apm_Config_Search::$ASN_NO_SEARCH_PANE)) {
			$this->_data['no_left_pane'] = '1';
			// 戻る遷移の場合
			if (!empty($this->_params['houzin_no_left'])) {
				unset($this->_params['houzin_no_left']);
				// 物件一覧用パラメータの削除
				if (!empty($this->_params['selcount']))       { unset($this->_params['selcount']); }
				if (!empty($this->_params['dispCount']))      { unset($this->_params['dispCount']); }
				if (!empty($this->_params['page']))           { unset($this->_params['page']); }
				if (!empty($this->_params['shop_page']))      { unset($this->_params['shop_page']); }
				if (!empty($this->_params['SortCd']))         { unset($this->_params['SortCd']); }
				if (!empty($this->_params['RstobiDispType'])) { unset($this->_params['RstobiDispType']); }
				// 遷移先制御
				if (!empty($this->_params['StCd'])) {
					// 駅選択の場合
					unset($this->_params['StCd']);
				} else if (!empty($this->_params['RailCd'])) {
					// 沿線選択の場合
					unset($this->_params['RailCd']);
				} else if (!empty($this->_params['TownCd'])) {
					// 町選択の場合
					unset($this->_params['TownCd']);
				} else if (!empty($this->_params['CityCd'])) {
					// 市区町村選択の場合
					unset($this->_params['CityCd']);
					unset($this->_params['SiteitosiCd']);
				} else {
					// 都道府県選択の場合
					unset($this->_params['PrefCd']);
				}
			}
		}

        // 以下、検索画面によって条件分けする。
        // 都道府県検索画面の出力(初期呼び出し時)
		if (! $this->_model_common->checkvalue($this->_params, "PrefCd"))
    	{
			// H1のタイトル
			$this->_data['h1_title'] = 'ご希望の都道府県を選択してください。';
			$this->_main_helper = $this->_todohuken_houzin_helper;
			// 戻るボタン非表示（左ペイン非表示画面のみ）
			$this->_data['no_back'] = '1';
    	}
		//政令指定都市・市区検索画面の出力（市区町村選択画面で検索時）
		else if ( $this->_model_common->returnValue($this->_params,"SrhType") == Apm_Config_Search::SRHTYPE_JYUSYO
		         && ! $this->_model_common->checkvalue($this->_params, "CityCd") && $this->_model_common->checkvalue($this->_params, "SiteitosiCd") )
		{

            // 市区町村モデル
		    $this->_model_sikucyoson = new Search_Model_Selsikucyoson();

			// H1のタイトル
			$this->_data['h1_title'] = 'ご希望の政令指定都市を選択してください。';

			$this->_data['selcity'] = array();
			$this->_data['selcity'] = $this->_model_sikucyoson->getSiteiShikuData($this->_params, "1");

			// 表示用データに変換
			$this->_model_sikucyoson->convertShikucyosonData($this->_data);
			$this->_data['selSiteitosiKbn'] = "1";

			$this->_main_helper = $this->_shikucyoson_houzin_helper;
			// 検索条件の表示
			$this->setJokenTemplate();
		}
		// 市区町村検索画面の出力（都道府県検索画面で検索時）
		else if ( $this->_model_common->returnValue($this->_params,"SrhType") == Apm_Config_Search::SRHTYPE_JYUSYO
		         && ! $this->_model_common->checkvalue($this->_params, "CityCd") )
		{

            // 市区町村モデル
		    $this->_model_sikucyoson = new Search_Model_Selsikucyoson();

			// H1のタイトル
			$this->_data['h1_title'] = 'ご希望の市区町村を選択してください。';

			$this->_data['selcity'] = array();
			$this->_data['selcity'] = $this->_model_sikucyoson->getShikucyosonData($this->_params);
	        // 表示用データに変換
        	$this->_model_sikucyoson->convertShikucyosonData($this->_data);

			$this->_main_helper = $this->_shikucyoson_houzin_helper;
			// 検索条件の表示
			$this->setJokenTemplate();
		}
		// 町名検索画面の出力（市区町村検索画面で検索時）
		else if ( $this->_model_common->returnValue($this->_params,"SrhType") == Apm_Config_Search::SRHTYPE_JYUSYO
		         && ! $this->_model_common->checkvalue($this->_params, "TownCd") )
		{

		    // 町名モデル
		   $this->_model_cyo = new Search_Model_Selcyo();

			// H1のタイトル
			$this->_data['h1_title'] = 'ご希望の町名を選択してください。';

			// 物件データの集計
			//$this->_model_cyo->editSum($this->_params);

			$this->_data['seltown'] = array();
			$this->_data['seltown'] = $this->_model_cyo->getCyoData($this->_params);
	        // 表示用データに変換
        	$this->_model_cyo->convertCyoData($this->_data);

			$this->_main_helper = $this->_cyo_houzin_helper;
			// 検索条件の表示
			$this->setJokenTemplate();
		}
        // 沿線検索画面の出力（都道府県検索画面で検索時）
		else if ( $this->_model_common->returnValue($this->_params,"SrhType") == Apm_Config_Search::SRHTYPE_ENSENEKI
		         && ! $this->_model_common->checkvalue($this->_params, "RailCd") )
		{

            // 沿線モデル
		    $this->_model_ensen = new Search_Model_Selensen();

			// H1のタイトル
			$this->_data['h1_title'] = 'ご希望の沿線を選択してください。';

			$this->_data['selensen'] = array();
			$this->_data['selensen'] = $this->_model_ensen->getEnsenDataByMulti($this->_params);

			// 表示用データに変換
			$this->_model_ensen->convertEnsenDataByMulti($this->_data);

			$this->_main_helper = $this->_ensen_houzin_helper;
			// 検索条件の表示
			$this->setJokenTemplate();
		}
		// 駅検索画面の出力（沿線検索画面で検索時）
		else if ( $this->_model_common->returnValue($this->_params,"SrhType") == Apm_Config_Search::SRHTYPE_ENSENEKI
		         && ! $this->_model_common->checkvalue($this->_params, "StCd") )
		{

		    // 駅モデル
		    $this->_model_eki = new Search_Model_Seleki();

			// H1のタイトル
			$this->_data['h1_title'] = 'ご希望の駅を選択してください。';

	        $this->_data['seleki'] = array();
			$this->_data['seleki'] = $this->_model_eki->getEkiData($this->_params);

			// 表示用データに変換
			$this->_model_eki->convertEkiData($this->_data);

			$this->_main_helper = $this->_eki_houzin_helper;
			// 検索条件の表示
			$this->setJokenTemplate();

		}
// TODO 処理内容未決定
//		//町名検索画面で検索時
//		else
//		{
//        	$this->_data['main_block']  = $this->_main_helper->getBlock($this->_data);
//		}

		// 法人サイト共通設定
		$this->setAsnnetCommon();
//		$this->_data['ComGenruFlg'] = $this->_params['ComGenruFlg'];
//		$this->_data['strComName'] = $this->_params['strComName'];
//		$this->_data['BrowserTitle'] = $this->_params['BrowserTitle'];
//		$this->_data['ComId'] = $this->_params['ComId'];
//		$this->_data['KoujyoRitsu'] = $this->_params['KoujyoRitsu'];
//		//$this->_data['ExplanationFlg'] = $this->_params['ExplanationFlg'];
//		$this->_data['RequestFlg'] = $this->_params['RequestFlg'];
//		$this->_data['EtcFlg'] = $this->_params['EtcFlg'];

		$this->setXPassThroutgh();

        // 表示
		$this->_display_path = APPLICATION_PATH . '/modules/search/views/scripts/houzinsearch.tpl';

	}

	/**
	 * 条件指定テンプレートの設定
	 * 
	 */
	private function setJokenTemplate()
	{
		if ($this->_model_common->returnValue($this->_data, 'no_left_pane') == '1')
		{
		    $loader = new Zend_Application_Module_Autoloader(array(
				'namespace' => 'Rstobi',
				'basePath' => APPLICATION_PATH . '/modules/rstobi',
			));
	
			// 社宅控除率
			if($this->_model_common->checkvalue($this->_params, "ComId"))
			{
				$this->_model_rstobi_common = new Rstobi_Model_Common();
				$shatakuKoujyoritsu = $this->_model_rstobi_common->getShatakuKoujyoritsu($this->_params);
				$this->_data['shatakuKoujyoritsu'] = (100- floor( $shatakuKoujyoritsu )) / 100 * 1.05;
				$this->_data['request']['ComId'] = $this->_params['ComId'];
			}

			// キャンペーン取得
			//$this->_model_campain = new Search_Model_Campaignsearch();
			//$this->_data['campaign'] = $this->_model_campain->getCampaignsearch();
			//$this->_model_campain->convertData2($this->_params, $this->_data);

			// 左ペイン中部：基本条件CHECKED設定
			$this->_model_basic = new Search_Model_Basicjyoken();
			$this->_data['basic'] = $this->_model_basic->setChecked($this->_params);

			// 左ペイン下部：こだわり条件データ取得
			$this->_model_kodawari = new Search_Model_Kodawarijyoken();
			$this->_data['kodawari'] = $this->_model_kodawari->getKodawariJyoken($this->_params);
			$this->_model_kodawari->convertKodawariData($this->_params, $this->_data);

			// こだわり条件パラメータが存在していたら、削除する
			$del_key = array();
			foreach ($this->_params as $key => $val)
			{
				// キャンペーン
				if (strpos($key, 'campaign') !== false) {
					$del_key[] = $key;
					continue;
				}
				// 基本条件
				if (strpos($key, 'syokihiyo') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'tinryo') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'meyasu_tinryo') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'tinryo_jouken2') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'tyusyajyo_komi') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'shataku_koujyo') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'shikikin_nashi') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'reikin_nashi') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'freerent') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'heyawari') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'madori') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'senyu') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'syubetu') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'ekitoho') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'built') !== false) {
					$del_key[] = $key;
					continue;
				}
				if (strpos($key, 'jyohou') !== false) {
					$del_key[] = $key;
					continue;
				}
				// こだわり条件
				if (strpos($key, 'kodawari') !== false) {
					$del_key[] = $key;
					continue;
				}
			}
			foreach ($del_key as $val)
			{
				// パラメータ削除
				unset($this->_params[$val]);
			}

			$this->_data['no_request'] = '1';
			$this->_data['basic_kodawari_joken'] = $this->_selbasic_helper->getBlock($this->_data);
		}
	}
}
?>